3.06. Основы NoSQL
Разработчику
Аналитику
Тестировщику
Архитектору
Инженеру
Основы NoSQL
Мы уже рассматривали основы баз данных. Сейчас придётся углубиться.
Представим себе библиотеку, где книги распределены по полочкам, упорядочены по алфавиту, с указателями, номерами, сгруппированы по авторам, жанрам и году изданию. Это порядок - SQL.
А теперь представим, что кто-то принёс старую тетрадь с заметками, огромный плейлист с музыкой из Spotify, коллекцию фотографий с телефона и попросил всё это хранить аккуратно. Но как это всё хранить, если нет какой-то единой структуры? Ведь это всё не поместить по полочкам, в строчки и таблицы - вот тут и нужна нереляционная модель хранения данных. Эта тема появилась, когда стандартных возможностей стало недостаточно, и XXI век стал эпохой больших данных, с кучей социальных сетей, мессенджеров, онлайн-магазинов и устройств. Информация очень туго подстравивалась под табличную модель либо не подстраивалась вовсе. Тогда и изобрели гибкие NoSQL-системы, которые не требуют строгих схем, умеют масштабироваться, работают быстро и хранят любые форматы, чтобы хранить данные «как есть».
Поскольку NoSQL появился позже SQL, поначалу может быть не совсем понятно, как эта технология работает, но я уверен, что мы справимся.
★ NoSQL (Not Only SQL) – базы данных, которые не используют таблицы (как SQL), а хранят данные в других форматах:
- Документы (MongoDB);
- Ключ-значение (Redis);
- Колоночные (Cassandra);
- Графовые (Neo4j).
Какие возможности предоставляет NoSQL?
- работать с данными, которые не имеют строгой схемы;
- добавлять, изменять и удалять поля без перестроения всей схемы;
- выполнять горизонтальное масштабирование - данные могут распределяться по множеству серверов;
- работа с большими объемами информации и высокими нагрузками;
- автоматическое реплирование данных между узлами;
- работа с документами, ключами/значениями, графами, колонками и другими структурами;
- использование кэширования для ускорения доступа к данным.
В зависимости от необходимости решения конкретных задач, подбирается соответствующая NoSQL-технология. Давайте разбёрем их.